echo server

echo server# -- codingimport socketimport sysimport osimport timefrom threading import ThreadBACKLOG = 5# Socket 클래스class YDSocket def __init__(self) listensock = 0; # Bind 함수 def Bind(self,port) # s...

쉘스크립트를 이용한 DNS 서버 상태측정

쉘스크립트를 이용한 DNS 서버 상태측정특정 DNS(# ./dnscheck.sh www.joinc.co.kr 218.234.19.87#!/bin/shhost=$1server=$2# 현재시간을 nano초 단위로 얻는다.time1=`date +%s.%N`result=`nslookup -timeout=5 -retry=0 $host $server`# 출력결과물에...

Perl 소켓 프로그래밍

Perl 소켓 프로그래밍참고 네트워크 프로그램은 주로 C(이번에는 Perl을 이용해서 소켓 프로그래밍을 하기로 했다. Master <-> Slave 방식의 분산 시스템을 만들고, 이때 Slave 에서 실행될 Job Function은 Master에 의해서 배포되도록 설계를 했는데 아무래도 컴파일된 프로그램을 배포하는건 효율적이지 못하기 때문이다. 다양한 환...

네트워크 프로그래밍 미니 사이트

네트워크 프로그래밍 미니 사이트네트워크 프로그래밍 관련 미니 사이트 입니다. 그동안 네트워크 프로그래밍 관련 내용을 쉽게 찾을 수 있도록 인덱스를 제공합니다. 처음 네트워크 프로그래밍을 접하는 분들에게 도움을 줄 목적으로 만들어졌습니다.의 글들을 먼저 읽는다면 여기의 내용들을 이해하고 응용하는데 많은 도움이 될겁니다.컴퓨터는 정보를 처리하기 위해서 만들어...

Advanced network Programming

Advanced network Programming 리얼타임 시그널, kqueue, C10K, epoll 등 최신 네트워크 프로그래밍 기술에 대한 내용들 커널 2.4를 기준으로 작성된 예전 문서들은 2.6에 맞게 수정 C10K 문서를 위주로...

비 동기 입출력 프로그래밍

비 동기 입출력 프로그래밍비동기 입출력 프로그래밍에 대해서 다룰 계획임. POSIX AIO도 함께.소켓 응용 프로그램을 개발하다보면 종종 봉쇄(blocking) 소켓, 비 봉쇄(non-blocking) 소켓이란 말을 듣는다. 봉쇄 소켓 보다 비 봉쇄 소켓이 성능이 좋다느니, 이런 경우에는 비 봉쇄 소켓을 사용해야 한다느니 하는 것들이 그것이다. 특히 요즘...

Real-Time Signal과 이벤트기반 네트워킹 기술에 대한 소개

Real-Time Signal과 이벤트기반 네트워킹 기술에 대한 소개 이 문서는 일부 2.6의 내용을 포함하고 있지만 전체적으로 커널 2.4를 기준으로 작성되었다. 최신 커널의 변경사항을 조사해서 수정할 필요가 있다. 몇번에 걸쳐서 RTS를 다루었는데 너무 피상적인 내용만 다룬것 같다. 아무래도 제대로 사용하기 위해서는 실제로 서비스 가능한 간단한 인터...

setsockopt - 소켓옵션

setsockopt - 소켓옵션네트워크 환경은 복잡 다양하며 예측하기 힘든 일들이 많이 발생한다. 이런 이유로 네트워크프로그램의 종류에 따라서 소켓(다음은 이들 함수의 사용방법이다. #include #include int getsockopt(int s, int level, int optname, void o...

윈도 사이즈와 소켓 버퍼

윈도 사이즈와 소켓 버퍼TCP는 데이터의 신뢰성을 보장한다. 신뢰성 보장의 핵심은 전송 패킷에 대한 ACK 응답이다. 내가 보낸 데이터에 대해서 일정 시간동안 응답이 없다면, 상대측이 데이터를 받지 못한 것으로 간주 하고 재 전송하는 식이다.TCP의 전송 <-> 응답시스템은 신뢰성을 보장해주는 매우 좋은 방식이긴 하지만, 비 효율적일 수 있다는 문제가 발...

epoll - 커널 2.4 기준

epoll - 커널 2.4 기준이 문서는 kernel2.4를 기반으로한 오래된 문서입니다. 기술적인 내용만 참고하고 으로 변경사항을 확인하면 될 것 같습니다. 일단 2.6은 커널패치나 라이브러리 없이 epoll을 지원하기 때문에, 2.6을 사용하는 지금은 라이브러리와 커널 설정 부분은 읽을 필요가 없습니다. 작성일 수정일 언제 날 잡아서 2.6에 맞...